home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / ccm / Window.py < prev   
Text File  |  2009-03-04  |  4KB  |  114 lines

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. # This program is free software; you can redistribute it and/or
  5. # modify it under the terms of the GNU General Public License
  6. # as published by the Free Software Foundation; either version 2
  7. # of the License, or (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful, 
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program; if not, write to the Free Software
  16. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  17. #
  18. # Authors: Quinn Storm (quinn@beryl-project.org)
  19. #          Patrick Niklaus (marex@opencompositing.org)
  20. #          Guillaume Seguin (guillaume@segu.in)
  21. #          Christopher Williams (christopherw@verizon.net)
  22. # Copyright (C) 2007 Quinn Storm
  23.  
  24. import pygtk
  25. import gtk
  26. import gtk.gdk
  27.  
  28. from ccm.Pages import *
  29. from ccm.Utils import *
  30. from ccm.Constants import *
  31. from ccm.Conflicts import *
  32.  
  33. import locale
  34. import gettext
  35. locale.setlocale(locale.LC_ALL, "")
  36. gettext.bindtextdomain("ccsm", DataDir + "/locale")
  37. gettext.textdomain("ccsm")
  38. _ = gettext.gettext
  39.  
  40. class MainWin(gtk.Window):
  41.  
  42.     currentCategory = None
  43.  
  44.     def __init__(self, Context, pluginPage=None, categoryName=None):
  45.         gtk.Window.__init__(self)
  46.         self.ShowingPlugin = None
  47.         self.Context = Context
  48.         self.connect("destroy", self.Quit)
  49.         self.set_default_size(990, 580)
  50.         self.set_title(_("CompizConfig Settings Manager"))
  51.         
  52.         # Build the panes
  53.         self.MainBox = gtk.HBox()
  54.         self.add(self.MainBox)
  55.         self.LeftPane = gtk.VBox()
  56.         self.RightPane = gtk.VBox()
  57.         self.RightPane.set_border_width(5)
  58.         self.MainBox.pack_start(self.LeftPane, False, False)
  59.         self.MainBox.pack_start(self.RightPane, True, True)
  60.         self.MainPage = MainPage(self, self.Context)
  61.         self.CurrentPage = None
  62.         self.SetPage(self.MainPage)
  63.  
  64.         self.LeftPane.set_size_request(self.LeftPane.size_request()[0], -1)
  65.         self.show_all()
  66.  
  67.         if pluginPage in self.Context.Plugins:
  68.             self.ShowPlugin(None, self.Context.Plugins[pluginPage])
  69.         if categoryName in self.Context.Categories:
  70.             self.ToggleCategory(None, categoryName)
  71.  
  72.     def Quit(self, *args):
  73.         gtk.main_quit()
  74.  
  75.     def SetPage(self, page):
  76.         if page == self.CurrentPage:
  77.             return
  78.  
  79.         if page != self.MainPage:
  80.             page.connect('go-back', self.BackToMain)
  81.         
  82.         if self.CurrentPage:
  83.             leftWidget = self.CurrentPage.LeftWidget
  84.             rightWidget = self.CurrentPage.RightWidget
  85.             leftWidget.hide_all()
  86.             rightWidget.hide_all()
  87.             self.LeftPane.remove(leftWidget)
  88.             self.RightPane.remove(rightWidget)
  89.             if self.CurrentPage != self.MainPage:
  90.                 leftWidget.destroy()
  91.                 rightWidget.destroy()
  92.  
  93.         self.LeftPane.pack_start(page.LeftWidget,   True, True)
  94.         self.RightPane.pack_start(page.RightWidget, True, True)
  95.         self.CurrentPage = page
  96.         self.show_all()
  97.  
  98.     def BackToMain(self, widget):
  99.         self.SetPage(self.MainPage)
  100.  
  101.     def RefreshPage(self, updatedPlugin):
  102.         currentPage = self.CurrentPage
  103.  
  104.         if isinstance(currentPage, PluginPage) and currentPage.Plugin:
  105.             for basePlugin in updatedPlugin.GetExtensionBasePlugins ():
  106.                 # If updatedPlugin is an extension plugin and a base plugin
  107.                 # is currently being displayed, then update its current page
  108.                 if currentPage.Plugin.Name == basePlugin.Name:
  109.                     if currentPage.CheckDialogs(basePlugin, self):
  110.                         currentPage.RefreshPage(basePlugin, self)
  111.                     break
  112.  
  113. gtk.window_set_default_icon_name('ccsm')
  114.